/**
 * Copyright (C) 2015-2050 CCIC Inc.All Rights Reserved.
 * Description：
 * @author 颜德平
 * @since 2016年1月20日
 * @version 1.0.0
 * History：
 */

package com.csscis.ssm.core.generic;

import java.util.Date;

import com.csscis.ssm.core.util.CamelCaseUtils;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;

/**
 *所有自定义Model的顶级父类，提供一些公用属性，用于子类继承使用
 * @author 颜德平
 * @since 2016年1月20日
 * @version 1.0.0
 */
public class GenericModel {

    /**
     * 排序字段
     */
    @JsonIgnore //表示将该对象转换为json String的时候，忽略该属性
    protected String sortname;
    /**
     * 排序方式
     */
    @JsonIgnore
    protected String sortorder;
    /**
     * 任务创建时间;临时属性
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonIgnore
    protected Date createTime;

    public String getSortname() {

        return sortname;
    }

    /**
     * @param sortname
     */
    public void setSortname(String sortname) {

        if (sortname != null && !"".equals(sortname)) {
            sortname = CamelCaseUtils.toUnderlineName(sortname);
        }
        if (sortname.indexOf(".") > 0) {
            sortname = null;
            this.sortorder = null;
        }
        this.sortname = sortname;
    }

    public String getSortorder() {

        return sortorder;
    }

    public void setSortorder(String sortorder) {

        this.sortorder = sortorder;
    }

    public Date getCreateTime() {

        return createTime;
    }

    public void setCreateTime(Date createTime) {

        this.createTime = createTime;
    }
}
